package com.zdw.oauth.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zdw.oauth.dto.DepartmentAddDto;
import com.zdw.oauth.dto.DepartmentSelectDto;
import com.zdw.oauth.dto.DepartmentUpdDto;
import com.zdw.oauth.dto.UserDepartmentDto;
import com.zdw.oauth.entity.DepartmentEntity;

import java.util.List;

/**
 * <p>
 * 部门 服务类
 * </p>
 *
 * @author 卓德文
 * @since 2023-07-25
 */
public interface DepartmentService  {

    /**
     * 新增部门
     *
     * @param dto
     * @return
     */
    boolean add(DepartmentAddDto dto);

    /**
     * 编辑部门
     *
     * @param dto
     * @return
     */
    boolean update(DepartmentUpdDto dto);

    /**
     * 删除部门(批量)
     *
     * @param roleIdList
     * @return
     */
    boolean delete(List<Integer> roleIdList);

    /**
     * 查询部门信息
     *
     * @param id
     * @return
     */
    DepartmentEntity select(int id);

    /**
     * 分页查询部门列表
     *
     * @param dto
     * @return
     */
    IPage<DepartmentEntity> page(DepartmentSelectDto dto);

    /**
     * 查询部门树
     *
     * @return
     */
    List<DepartmentEntity> tree();

    /**
     * 给用户分配部门
     * @param dto
     * @return
     */
    Boolean grantDepartment(UserDepartmentDto dto);

}
